Generally, data storage devices are configured to write data to memory and read the data from the memory. An access device coupled to a data storage device may send a first read request to read data from a memory address. The data storage device may start a read operation responsive to the first read request. For example, the data storage device may read data from a memory location corresponding to the address and may perform decode operations on the read data. The data storage device may perform one or more stages of decoding and may provide decoded data to the access device in response to detecting that a first decode stage (e.g., error correction code (ECC) decoding) succeeded. Alternatively, the data storage device may proceed to a second decode stage (e.g., redundant array of independent disks (RAID) decoding) in response to detecting a failure at the first decode stage. Performing a greater number of the decode stages may use more resources (e.g., time and processing cycles) and increase read latency.
In some circumstances, the access device may issue an abort command to the data storage device in response to determining that the data storage device is taking too long to respond to the first read request. For example, the access device may issue the abort command in response to determining that a higher priority operation is to be performed by the access device. The access device may subsequently send a second read request to the data storage device indicating the same address of the memory. The data storage device may restart the read operation responsive to the second read request. For example, the data storage device may perform the first decode stage again and the first decode stage may fail again. Interrupting and restarting a read operation to a memory location may use more resources (e.g., time and processing cycles) overall.